# A sample Guardfile
# More info at https://github.com/guard/guard#readme

## Uncomment and set this to only include directories you want to watch
# directories %w(app lib config test spec features) \
#  .select{|d| Dir.exists?(d) ? d : UI.warning("Directory #{d} does not exist")}

## Note: if you are using the `directories` clause above and you are not
## watching the project directory ("."), then you will want to move
## the Guardfile to a watched dir and symlink it back, e.g.
#
#  $ mkdir config
#  $ mv Guardfile config/
#  $ ln -s config/Guardfile .
#
# and, you'll have to watch "config/Guardfile" instead of "Guardfile"

# Note: The cmd option is now required due to the increasing number of ways
#       rspec may be run, below are examples of the most common uses.
#  * bundler: "bundle exec rspec"
#  * bundler binstubs: "bin/rspec"
#  * spring: "bin/rspec" (This will use spring if running and you have
#                          installed the spring binstubs per the docs)
#  * zeus: "zeus rspec" (requires the server to be started separately)
#  * "just" rspec: "bin/rspec"

# , failed_mode: :focus

group :red_green_refactor, :halt_on_fail => true do
  guard :rspec, :cmd => 'rspec' do
    watch('^spec/.+(_spec)')
    watch('^lib/(.+)\.rb') { |m| "spec/lib\/#{m[1]}_spec.rb" }
  end

  guard :rubocop, :all_on_start => false do
    watch(/.+\.rb$/)
    watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
  end
end
